/**  
 * @Title: UserService.java
 * @Package org.wk.user.service
 * @Description: TODO【】
 * @author df.w 
 * @date 2018年5月3日 下午2:09:46
 * @version V1.0  
 */ 

package org.wk.user.service;

import org.wk.affiliate.view.NotifyVo;
import org.wk.core.common.view.PageVo;
import org.wk.core.common.view.ResponseVo;

import com.alibaba.fastjson.JSONObject;
import org.wk.user.domain.User;
import org.wk.user.view.UserVo;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * @ClassName	: UserService
 * @Package		：org.wk.user.service
 * @Author df.w 
 * @Create Time	：2018年5月3日 下午2:09:46
 * @Description	: 
 */

public interface UserService {
	
	
	/**
	 * @Title		: profile
	 * @Param		: @return
	 * @Return Type 	：ResponseVo
	 * @Description	: 获取用户个人资料
	 */ 
	public ResponseVo profile();
	
	
	/**
	 * @Title		: updateProfile
	 * @Param		: @param jsonObject
	 * @Param		: @return
	 * @Return Type 	：ResponseVo
	 * @Description	: 修改个人资料
	 */ 
	public ResponseVo updateProfile(JSONObject jsonObject);
	
	
	
	/**
	 * @Title		: updateLoginPassword
	 * @Param		: @param jsonObject
	 * @Param		: @return
	 * @Return Type 	：ResponseVo
	 * @Description	: 修改登录密码
	 */ 
	public ResponseVo updateLoginPassword(JSONObject jsonObject);
	
	
	
	/**
	 * @Title		: verifyIDCard
	 * @Param		: @param jsonObject
	 * @Param		: @return
	 * @Return Type 	：ResponseVo
	 * @Description	: 身份证实名认证
	 */ 
	public ResponseVo verifyIDCard(JSONObject jsonObject);

	/**
	 * @Title		: verifyVip
	 * @Param		: @param jsonObject
	 * @Param		: @return
	 * @Return Type 	：ResponseVo
	 * @Description	: 审核vip升级
	 */
	public ResponseVo verifyVip(JSONObject jsonObject);

	/**
	 * @Title		: verifyVipList
	 * @Param		: @param jsonObject
	 * @Param		: @return
	 * @Return Type 	：ResponseVo
	 * @Description	: 待审核vip升级数据
	 */
	public ResponseVo verifyVipList();


	/**
	 * @Title		: applyForVip
	 * @Param		: @param jsonObject
	 * @Param		: @return
	 * @Return Type 	：ResponseVo
	 * @Description	: 申请成为VIP
	 */
	public ResponseVo applyForVip();

	/**
	 * @Title		: verifyVipPassList
	 * @Param		: @return
	 * @Return Type 	：ResponseVo
	 * @Description	: 已审核VIP列表
	 */
	public ResponseVo verifyVipPassList();

	/**
	 *  所有的用户列表  分页
	 * @author TangShenShen
	 * @date 2018/5/31 15:32
	 */
	public PageVo queryPage(Map<String, Object> params);

	/**
	 * 根据id得到用户详情
	 * @author TangShenShen
	 * @date 2018/6/12 10:42
	 */
	ResponseVo queryUserDetailById(String id);

	/**
	 * 根据用户昵称  模糊查询
	 * @author TangShenShen
	 * @date 2018/6/12 10:39
	 */
	List<User> getAllByParams(Map<String, Object> params);

	/**
	 * @Title		: findVipApplyStatus
	 * @Param		: @return
	 * @Return Type 	：ResponseVo
	 * @Description	: 查询VIP申请状态
	 */
    ResponseVo findVipApplyStatus();

    ResponseVo freezeUser(String id);

	ResponseVo unFreezeUser(String id);

	List<Object[]> exportUsers(Map<String,Object> params,int size);

	User findUserInfo(String id);

	ResponseVo settingLevelTwoPassword(JSONObject jsonObject);

    ResponseVo updateLevelTwoPassword(JSONObject jsonObject);

    ResponseVo updateUserDetailById(UserVo user);
}
